<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 在「杨辉三角」中，每个数是它左上方和右上方的数的和
      // 从索引为0开始计算行数，给定一个非负索引 `rowIndex`，返回「杨辉三角」的第 `rowIndex` 行

      function getRow(rowIndex) {
        const kp = []
        for (let i = 0; i <= rowIndex; i++) {
          // 第i行组成的数组
          kp[i] = []
          // 第一项都为1
          kp[i][0] = 1
          for (let j = 1; j < i; j++) {
            // 这一行的第j项=上一行数组第j-1项+上一行数组第j项
            kp[i][j] = kp[i - 1][j - 1] + kp[i - 1][j]
          }
          // 最后一项都为1
          kp[i][i] = 1
        }
        return kp[rowIndex]
      }
      console.log(getRow(5))
      console.log(getRow(6))
      console.log(getRow(7))

      // if (rowIndex === 0) return [1]
      // if (rowIndex === 1) return [1, 1]
      // if (rowIndex === 2) return [1, 2, 1]
      // let arr = [1, 2, 1]
      // let dp = [1,]
      // for (let i = 3; i <= rowIndex; i++) {
      //   // if (i % 2 === 1) {
      //   //   dp[Math.ceil(i / 2)] =
      //   //     dp[Math.floor(i / 2)] + dp[Math.floor(i / 2) - 1]
      //   // }
      //   // if (i % 2 === 0) {
      //   //   dp[i / 2 + 1] = dp[Math.ceil(i / 2)] * 2
      //   // }
      // }
    </script>
  </body>
</html>
